package com.free.front.controller.store;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.servlet.http.HttpServletRequest;

import com.google.code.kaptcha.Constants;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.deco.domain.vo.store.StoreJoinVo;
import com.free.common.vo.ResultModel;
import com.free.front.bf.store.StoreBf;
import com.free.front.controller.BaseController;

/**
 * <p>
 * 功能概述:
 * </p>
 * <p>
 * 功能详述:
 * </p>
 */
@Controller
public class StoreController extends BaseController {
    /*========================================================================*
     *                         Public Fields (公共属性)
     *========================================================================*/
	  // 手机号码验证
    public static final Pattern p_phone = Pattern.compile("^1[3|4|5|7|8][0-9]\\d{8}$");
    
    public static final Pattern p_email = Pattern.compile("^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$");
    
    @Autowired
    private StoreBf storeBf;

    /*========================================================================*
     *                         Private Fields (私有属性)
     *========================================================================*/

    /*========================================================================*
     *                         Construct Methods (构造方法)
     *========================================================================*/

    /*========================================================================*
     *                         Public Methods (公有方法)
     *========================================================================*/



    @RequestMapping(value="/storeJoin.htm")
    public String prodSearchByPrdArray(HttpServletRequest request){
        return getTempleate("/store/storeJoin",request);
    }

    @RequestMapping(value = "/storeJoin_data.json")
    @ResponseBody
    public ResultModel indexData(){
        return ResultModel.success(storeBf.getStoreJoinData());
    }

    @ResponseBody
    @RequestMapping(value = "/isValidYzm.json")
    public ResultModel isValidYzm(String yzm,HttpServletRequest request){
        String kapta = request.getSession().getAttribute("verifyCode").toString();
        if(!kapta.equals(yzm)){
            return ResultModel.failure(null,"验证码输入错误");
        }
        return ResultModel.success();
    }

    @ResponseBody
    @RequestMapping(value = "/saveStoreJoin.json")
    public ResultModel saveStoreJoin(StoreJoinVo storeJoin,HttpServletRequest request) {
    	ResultModel res =  ResultModel.failure();
        try {
            String kapta = request.getSession().getAttribute("verifyCode").toString();
            if(StringUtils.isEmpty(storeJoin.getYmz())){
                return ResultModel.failure(null,"请输入验证码");
            }
            if(!kapta.equals(storeJoin.getYmz())){
                return ResultModel.failure(null,"验证码输入错误");
            }
            if(StringUtils.isBlank(storeJoin.getName())){
            	return ResultModel.failure(null,"请输入姓名");
            }
            if (StringUtils.isBlank(storeJoin.getPhone())) {
                return ResultModel.failure(null,"请输入手机号码");
            }
            if (StringUtils.isBlank(storeJoin.getCompanyName())) {
                return ResultModel.failure(null,"请输入公司名称");
            }
            // 校验是否是合法手机号码
            Matcher m = p_phone.matcher(storeJoin.getPhone());
            if (!m.matches()) {
                return ResultModel.failure(null,"请输入有效手机号码");
            }
            Matcher m_email = p_email.matcher(storeJoin.getEmail());
            if (StringUtils.isBlank(storeJoin.getEmail()) || !m_email.matches()) {
                return ResultModel.failure(null,"请输入有效邮箱");
            }
            if(!storeJoin.getYmz().equals(kapta)){
                return ResultModel.failure(null,"验证码不正确");
            }
            if(StringUtils.isBlank(storeJoin.getProv()) || storeBf.getChinastatesVo(storeJoin.getProv()) == null){
                return ResultModel.failure(null,"省份有误");
            }
            if(StringUtils.isBlank(storeJoin.getCity()) || storeBf.getChinastatesVo(storeJoin.getCity()) == null){
                return ResultModel.failure(null,"城市有误");
            }
            storeJoin.setName(storeJoin.getName().replaceAll("<","《").replaceAll(">","》"));
            storeBf.addStoreJoin(storeJoin);
            res = ResultModel.success();
        } catch (Exception e) {
            e.printStackTrace();
           // LOG.error("经销商加盟出错：" + e);
        }
        return res;
    }

    /*========================================================================*
     *                         Private Methods (私有方法)
     *========================================================================*/
}
